//
//  BaseViewController.h
//  MasonryDemo
//
//  Created by 谢英泽 on 2016/11/11.
//  Copyright © 2016年 谢英泽. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "AppHeader.h"
#import "BaseNaviView.h"
#import "BaseEmptyDataView.h"

typedef void(^kBaseComplete)(void);

@interface BaseViewController : UIViewController
/**
 没有数据显示页面
 */
@property (nonatomic, strong) BaseEmptyDataView *emptyDataView;
@property (nonatomic, assign) BOOL showEmptyDataView;
/**
 自定义导航栏视图
 */
@property (nonatomic, strong) BaseNaviView *navView;
@property (nonatomic, copy) NSString *navTitle;
@property (nonatomic, assign) BOOL showNavLine;
/**
 是否显示tabbar，其中tabbar为自定义的
 */
@property (nonatomic, assign) BOOL showTabBar;
/**
 携带参数
 */
@property (nonatomic, strong) NSDictionary *param;
@property (nonatomic, copy) kBaseComplete complete;
/**
 自定义导航栏相关
 */
- (void)hideCustomNavView;
- (void)showCustomNavView;
- (void)hideLeftBackItem;
- (void)showLeftBackItem;

/**
 系统返回按钮相关
 */
- (void)setupBackNaviBar;
- (void)hideNaviBack;
- (void)finishNavi;

/**
 等待提示框
 */
- (void)showLoading;
- (void)hideLoading;

/**
 未登录跳转
 */
- (void)gotoLoginVC;

/**
 子类基本配置
 */
- (void)configuration;
- (void)initSubViews;
- (void)autoLayoutForSubViews;
- (void)bindViewModel;
- (void)fetchData;


/**
  弹框
 */
- (void)showAlertViewWithTitle:(NSString *)title content:(NSString *)content;
- (void)showSoonAlertViewWithTitle:(NSString *)title content:(NSString *)content;
- (void)showAlertViewWithTitle:(NSString *)title content:(NSString *)content  ensureButtonTitle:(NSString *)ensureButtonTitle cancelButtonTitle:(NSString *)cancelButtonTitle;

@end

